package com.mintingi.pattern.strategy;

/**
 * 자동차 브레이크 테스트
 * 
 * @author mintingi
 *
 */
public class CarBrakeTest {

	public static void main(String[] args) {
		
		System.out.println("# 생성시 의존성 주입 #");
		// Car 객체 생성시 의존성 주입(Dependency Injection, DI)
		// 생성시 일반 브레이크 행동 알고리즘 구현 클래스 주입
		Car car = new Car(new BrakeWithGeneral());
		// 캡슐화된 행동 메소드 호출
		car.getBrakeBehavior().brake();
		
		System.out.println("----------------------");
		
		System.out.println("# 실행시 의존성 주입 #");
		// Car 객체 실행시 의존성 주입(Dependency Injection, DI)
		car.setBrakeBehavior(new BrakeWithABS());
		// 캡슐화된 행동 메소드 호출
		car.getBrakeBehavior().brake();
	}
}
